/*****************************************************************************/
/*                                                                           */
/*    Domino Operation System Kernel Module                                  */
/*                                                                           */
/*    Copyright (C) 2007 Laszlo Arvai                                        */
/*                                                                           */
/*    ------------------------------------------------------------------     */
/*    krnlCAN - CAN interface kernel module                                  */
/*****************************************************************************/

#ifndef __krnlCAN_h
#define __krnlCAN_h

///////////////////////////////////////////////////////////////////////////////
// Includes
#include "krnlTypes.h"

///////////////////////////////////////////////////////////////////////////////
// Constants
#define krnlCANF_RTR			(1<<1)
#define krnlCANF_EXTENDED	(1<<2)

///////////////////////////////////////////////////////////////////////////////
// Types
struct _krnlCANMessage
{
	dosDWord Id;
	dosByte Flags;
	dosByte Length;
	dosByte Data[8];
};

typedef struct _krnlCANMessage krnlCANMessage;

///////////////////////////////////////////////////////////////////////////////
// Function prototypes
void krnlCANInit(void);
void krnlCANBusOn(void);
void krnlCANBusOff(void);
dosBool krnlCANIsMessageAvailable(void);
dosBool krnlCANIsTxEmpty(void);
dosBool krnlCANGetMessage( krnlCANMessage *out_message );
dosBool krnlCANSendMessage( krnlCANMessage *in_message );



#endif
